package com.hd123.rumba.gwt.widget2.client.dialog;

import java.util.EventListener;

import com.hd123.rumba.gwt.widget2.client.button.RButton;
import com.hd123.rumba.gwt.widget2.client.dialog.RDialog.ButtonConfig;

/**
 * RDialog按钮点击事件
 * 
 * @author LiQi
 * 
 */
public interface RDialogButtonClickListener extends EventListener {

  /**
   * 对话框按钮被点击时触发
   * 
   * @param dialog
   *          按钮所在对话框
   * @param buttonConfig
   *          按钮定义
   * @param button
   *          按钮
   * @return 是否关闭对话框。若返回true，则对话框会被关闭，否则不会被关闭。如果存在多个listener，
   *         则只有当所有listener 都返回true时对话框才会被关闭，也就是说，
   *         任何一个listener都可以通过返回false来阻止对话框关闭
   *         。只要存在一个listener，ButtonConfig.clickToClose就失效。
   */
  boolean onClick(RDialog dialog, ButtonConfig buttonConfig, RButton button);
}
